package com.nisco.dms.functional.gui;

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import org.openqa.selenium.By;

import com.nisco.dms.functional.BaseSeleniumTestCase;

/**
 * 自动化测试公司管理新增公司的功能
 * 
 * @author Robin
 * 
 */
public class CompanyFT extends BaseSeleniumTestCase {

	/**
	 * 公司管理添加按钮自动化测试。
	 */
	@Test
	public void addCompany() {
		// 步骤：
		// 1、打开公司管理模块
		// 2、点击添加按钮
		// 3、输入相应资料
		// 4、点击提交按钮
		//
		// 根据超链接文本打开相应画面
		s.click(By.linkText("公司管理"));
		// 测试超链接要使用linkText
		s.click(By.linkText("添加"));
		// 可以通过id、name获取到页面元素。
		s.type(By.id("compId"), "1001");
		s.type(By.id("compName"), "金恒信息");
		s.type(By.id("memo"), "就不告诉你");
		// 添加后提交
		s.click(By.id("submit_btn"));

		// 跳转到登录页
		// assertEquals("nisco department manage system主菜单", s.getTitle());
		System.out.println("相应操作之后的标题：" + s.getTitle());
	}

	/**
	 * 公司管理编辑按钮自动化测试。
	 */
	@Test
	public void updateCompany() {
		// 步骤：
		// 1、打开公司管理模块
		// 2、选择已有的单条资料
		// 3、点击编辑按钮
		// 4、输入相应资料
		// 5、点击提交按钮
		// 根据超链接文本打开相应画面
		s.click(By.linkText("公司管理"));
		// 获取table中的数据使用xpath
		s.click(By.xpath("//table//tr[2]/td[1]"));
		s.click(By.linkText("编辑"));
		// 编辑页面中如果有的文本属性是textonly、hidden、disable的不能进行修改，如以下注释：
		// s.type(By.ByName.name("compId"), "10000");
		// s.type(By.ByName.name("compName"), "test10");
		s.type(By.ByName.name("memo"), "自动化测试");
		// 修改完成后提交提交按钮
		s.click(By.id("submit_btn"));

		System.out.println("相应操作之后的标题：" + s.getTitle());

	}

	/**
	 * 退出到登陆界面
	 */
	@Test
	public void logout() {
		// 退出平台
		s.open("/logout");
	}

	// @Test
	public void inputInValidateValue() {
		s.open("/register");
		s.click(By.id("submit_btn"));

		assertEquals("必选字段", s.getText(By.xpath("//fieldset/div/div/span")));
	}

}
